/**
 * \file test_suite_sdv_eal_sm4.h
 *
 * \brief SM4 algorithm test cases for SDV EAL
 */
#ifndef TEST_SUITE_SDV_EAL_SM4_H
#define TEST_SUITE_SDV_EAL_SM4_H

#if !defined(MBEDTLS_CONFIG_FILE)
#include "mbedtls/config.h"
#else
#include MBEDTLS_CONFIG_FILE
#endif

#if defined(MBEDTLS_SM4_C) && defined(MBEDTLS_CIPHER_MODE_CBC)

/**
 * \brief SM4-CBC encryption/decryption test case
 */
void test_sm4_cbc_encrypt_decrypt( char *key_hex, char *iv_hex, 
                                 char *input_hex, char *expected_hex );

/**
 * \brief SM4-CBC encryption/decryption with various data lengths
 */
void test_sm4_cbc_various_lengths( void );

#endif /* MBEDTLS_SM4_C && MBEDTLS_CIPHER_MODE_CBC */

#endif /* TEST_SUITE_SDV_EAL_SM4_H */